package no10;
/**
 * 说明匿名内部类的使用
 * @author gao
 *
 */
class Wrapping{
	private int i;
	public Wrapping(int x){
		i=x;
	}
	public int value(){
		return i;
	}
}

interface AE {
	int value();
}


public class Inner {
	public Wrapping getWrapping(final int x){
		//new AE 的意义是实现AE接口
		//{}内为实体
		AE ae = new AE(){
			public int value(){
				return x;
			}
		};
		
		//匿名内部类继承自Wrapping
		//该匿名类的构造使用父类的Wrapping(x)
		//该匿名类的实体为{}的内容
		return new Wrapping(x){
			public int value(){
				int a = x;
				//使用Wrapping.value() 再-a
				return super.value()-a;
			}
		};//最后使用分号,它不是表示内部类的结束,而是表示表达式的结束
		
	}
}
